(0) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2).


The TRS R consists of the following rules:

not(not(x)) → x
not(or(x, y)) → and(not(x), not(y))
not(and(x, y)) → or(not(x), not(y))
and(x, or(y, z)) → or(and(x, y), and(x, z))
and(or(y, z), x) → or(and(x, y), and(x, z))

Rewrite Strategy: INNERMOST

(1) NestedDefinedSymbolProof (BOTH BOUNDS(ID, ID) transformation)

The following defined symbols can occur below the 0th argument of and: and, not
The following defined symbols can occur below the 1th argument of and: and, not

Hence, the left-hand sides of the following rules are not basic-reachable and can be removed:
not(not(x)) → x
not(and(x, y)) → or(not(x), not(y))

(2) Obligation:

The Runtime Complexity (innermost) of the given CpxTRS could be proven to be BOUNDS(1, n^2).


The TRS R consists of the following rules:

and(x, or(y, z)) → or(and(x, y), and(x, z))
and(or(y, z), x) → or(and(x, y), and(x, z))
not(or(x, y)) → and(not(x), not(y))

Rewrite Strategy: INNERMOST

(3) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted Cpx (relative) TRS to CDT

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

and(z0, or(z1, z2)) → or(and(z0, z1), and(z0, z2))
and(or(z0, z1), z2) → or(and(z2, z0), and(z2, z1))
not(or(z0, z1)) → and(not(z0), not(z1))
Tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
S tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
K tuples:none
Defined Rule Symbols:

and, not

Defined Pair Symbols:

AND, NOT

Compound Symbols:

c, c1, c2

(5) CdtRuleRemovalProof (UPPER BOUND(ADD(n^1)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
We considered the (Usable) Rules:none
And the Tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(AND(x1, x2)) = 0   
POL(NOT(x1)) = [2] + [2]x1   
POL(and(x1, x2)) = 0   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1, x2, x3)) = x1 + x2 + x3   
POL(not(x1)) = 0   
POL(or(x1, x2)) = [2] + x1 + x2   

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

and(z0, or(z1, z2)) → or(and(z0, z1), and(z0, z2))
and(or(z0, z1), z2) → or(and(z2, z0), and(z2, z1))
not(or(z0, z1)) → and(not(z0), not(z1))
Tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
S tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
K tuples:

NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
Defined Rule Symbols:

and, not

Defined Pair Symbols:

AND, NOT

Compound Symbols:

c, c1, c2

(7) CdtRuleRemovalProof (UPPER BOUND(ADD(n^2)) transformation)

Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
We considered the (Usable) Rules:

and(z0, or(z1, z2)) → or(and(z0, z1), and(z0, z2))
and(or(z0, z1), z2) → or(and(z2, z0), and(z2, z1))
not(or(z0, z1)) → and(not(z0), not(z1))
And the Tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
The order we found is given by the following interpretation:
Polynomial interpretation :

POL(AND(x1, x2)) = x1 + x2 + x1·x2   
POL(NOT(x1)) = [2]x12   
POL(and(x1, x2)) = x1 + x2 + x1·x2   
POL(c(x1, x2)) = x1 + x2   
POL(c1(x1, x2)) = x1 + x2   
POL(c2(x1, x2, x3)) = x1 + x2 + x3   
POL(not(x1)) = 0   
POL(or(x1, x2)) = [1] + x1 + x2   

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

and(z0, or(z1, z2)) → or(and(z0, z1), and(z0, z2))
and(or(z0, z1), z2) → or(and(z2, z0), and(z2, z1))
not(or(z0, z1)) → and(not(z0), not(z1))
Tuples:

AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
S tuples:none
K tuples:

NOT(or(z0, z1)) → c2(AND(not(z0), not(z1)), NOT(z0), NOT(z1))
AND(z0, or(z1, z2)) → c(AND(z0, z1), AND(z0, z2))
AND(or(z0, z1), z2) → c1(AND(z2, z0), AND(z2, z1))
Defined Rule Symbols:

and, not

Defined Pair Symbols:

AND, NOT

Compound Symbols:

c, c1, c2

(9) SIsEmptyProof (BOTH BOUNDS(ID, ID) transformation)

The set S is empty

(10) BOUNDS(1, 1)